package com.lottery.utils;

import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class IndistinctCheckUtils {

	public static Boolean vague(String string) {
		String param = "下注 " + string;
		boolean flg = false;
		// 如果为空返回结果
		if (null == param || "".equals(param.trim())) {
			return flg;
		}
		// 用空格分割字符串
		String[] array = param.split("\\s+");
		// 将array数组copy到strArray数组
		String[] strArray = copyArray(array);
		if (strArray == null || (strArray != null && strArray.length == 0)) {
			return flg;
		}
		for (String str : strArray) {

			flg = false;

			// 截取所有的第一个字符串
			String one = "";
			String oneAfter = "";
			if (str.length() >= 1) {
				one = str.substring(0, 1);
				oneAfter = str.substring(1);
			}
			// 截取所有的前两个字符串
			String two = "";
			String twoAfter = "";
			if (str.length() >= 2) {
				two = str.substring(0, 2);
				twoAfter = str.substring(2);
			}

			// 大小单双玩法 下注单100 双100 大单100
			if (("大".equals(one) || "小".equals(one)) && isInteger(oneAfter)) {
				flg = true;
			} else if (("大单".equals(two) || "小单".equals(two) || "大双".equals(two) || "小双".equals(two))
					&& isInteger(twoAfter)) {
				flg = true;
			}

			// 猜合玩法 下注合100
			// 判断为合和是否为整数
			if ("合".equals(one) && isInteger(oneAfter)) {
				flg = true;
			}

			// 以"/"进行分割
			String[] s = str.split("/");

			// 数字玩法 下注1/100
			if (s.length == 2 && s[0].length() == 1 && isInteger(s[0]) && isInteger(s[1])) {
				flg = true;
			}
			// 数字组合玩法 下注12/100 23/100 257/100
			if (s.length == 2 && s[0].length() > 1 && s[0].length() <= 5 && isInteger(s[0]) && isInteger(s[1])) {
				flg = true;
			}
			// 数字定位玩法 下注1/2/100 2/3/100 2/5/100
			if (("1".equals(s[0]) || "2".equals(s[0]) || "3".equals(s[0]) || "4".equals(s[0]) || "5".equals(s[0]))
					&& (s.length == 3 && s[1].length() == 1 && isInteger(s[1]) && isInteger(s[2]))) {
				flg = true;
			}
			if (flg == false) {
				return flg;
			}
		}
		return true;
	}

	/**
	 * 判断是否为整数
	 * 
	 * @param str
	 * @return
	 */
	private static boolean isInteger(String str) {

		Pattern pattern = Pattern.compile("[0-9]+");
		Matcher matcher = pattern.matcher((CharSequence) str);

		return matcher.matches();

	}

	/**
	 * 将数组的数据copy到一个新的数组
	 * 
	 * @param array
	 * @return
	 */
	private static String[] copyArray(String[] array) {

		String[] strArray = new String[(array.length) - 1];

		// 将array数组copy到strArray数组
		System.arraycopy(array, 1, strArray, 0, strArray.length);

		return strArray;

	}

}
